/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package controle;

import java.sql.SQLException;
import java.util.List;
import javax.inject.Named;
import javax.enterprise.context.RequestScoped;
import modelo.AcaoBO;
import modelo.ObjetivoBO;
import persistencia.AcaoDAO;
import persistencia.ObjetivoDAO;

/**
 *
 * @author rodrigo
 */
@Named(value = "acaoMB")
@RequestScoped
public class AcaoMB {

    private AcaoDAO acaoDAO;
    private AcaoBO acaoBO;
    private List<ObjetivoBO> objetivos;
    private List<AcaoBO> acoes;
    private ObjetivoDAO objetivoDAO;

    public AcaoMB() throws SQLException {

        acaoBO = new AcaoBO();
        acaoBO.setStatus(1);
        acaoDAO = new AcaoDAO();
        acoes = this.listarAcoes();
        objetivoDAO = new ObjetivoDAO();
        objetivos = objetivoDAO.listarObjetivos("SELECT * FROM objetivo");

    }

    public AcaoBO getAcaoBO() {
        return acaoBO;
    }

    public void setAcaoBO(AcaoBO acaoBO) {
        this.acaoBO = acaoBO;
    }

    public List<ObjetivoBO> getObjetivos() {
        return objetivos;
    }

    public void setObjetivos(List<ObjetivoBO> objetivos) {
        this.objetivos = objetivos;
    }

    public List<AcaoBO> getAcoes() {
        return acoes;
    }

    public void setAcoes(List<AcaoBO> acoes) {
        this.acoes = acoes;
    }

    private List<AcaoBO> listarAcoes() throws SQLException {
        return this.acaoDAO.listarAcoes("SELECT * FROM acao");
    }
    
    public String salvar() throws SQLException{
    
        if(acaoBO.getIdAcao() > 0)
        {
            this.acaoDAO.alterarAcao(acaoBO);
        }
        else{
            this.acaoDAO.inserirAcao(acaoBO);
        }
        return "CadastrarAcao";
    
    }
    
    public void novo() throws SQLException{
    
        acaoBO = new AcaoBO();
        acoes = this.listarAcoes();
    
    }
    
    public String editar(AcaoBO acaoBO){
        
        this.acaoBO = acaoBO;
        return "CadastrarAcao"; 
    }
    
    public void excluir(AcaoBO acaoBO) throws SQLException{
    
    acaoDAO.excluirAcao(acaoBO);
    
    acoes = this.listarAcoes();
    }
}
